.. This file was automatically converted from MediaWiki syntax. If some markup is wrong, looks weird or doesn't make sense, feel free to fix it. Please remove this comment once this file was manually checked and no "strange ReST" artifacts remain. .. _third-party-dependencies-and-license-info: Third-party dependencies and license info ========================================= License Info ------------ While Panda3D itself uses the Modified BSD license, it brings together many third-party libraries released under different licenses. This page provides information on the different libraries and their licenses. Panda3D builds with some of these libraries by default, however, some of them are linked only into plug-ins that can be easily removed from the distribution. Disclaimer ---------- Panda3D takes no responsibility for any act committed using the information presented here. For legal advice, it is recommended to consult a lawyer. Building Panda3D ---------------- When building Panda3D yourself on your computer you'll notice that makepanda.py looks up if you have some libraries installed. On operating systems with a packaging system, like most GNU/Linux distros have, you'll most likely find all dependencies as packages in the official repositories. Otherwise you have to take care of the libraries yourself. Here you have a list of all third party libraries Panda3D must or can be compiled against. All of them are optional, but some features of Panda3D depend on certain libraries being available; omitting certain libraries will omit the corresponding features from Panda3D. Recommended Libraries --------------------- Python ------ http://www.python.org/ Panda3D is way easier and faster to code with when using Python bindings. License: `PSF license `__ ZLib ~~~~ http://www.zlib.net/ Used for a range of compression and decompression tasks, particularly .pz files. License: `zlib license `__ libjpeg ~~~~~~~ http://www.ijg.org JPEG library. Required to read and save JPEG files. License: libjpeg license libpng ~~~~~~ http://www.libpng.org Portable Network Graphics library. Required to read and save PNG files. License: `libpng license `__ OpenSSL ~~~~~~~ http://www.openssl.org Provides some networking and encryption support. Required for HTTPClient, and for pencrypt/pdecrypt and related functionality. License: `OpenSSL license `__ License note: Must include this acknowledgement with distribution: .. code-block:: text This product includes software written by Tim Hudson (tjh@cryptsoft.com) `Some governments `__ place restrictions on cryptography. libvorbis ~~~~~~~~~ http://xiph.org/vorbis/ Used to load .ogg files encoded with Vorbis encoding. License: `BSD `__ Freetype ~~~~~~~~ http://freetype.sourceforge.net Font library. Required to use dynamic fonts such as TTF files. Even without this library, however, Panda can use static fonts stored in egg files, as generated by the tool egg-mkfont (however, the tool egg-mkfont itself requires Freetype). License: `FreeType License `__ or `GPL `__ License note: To distribute under a proprietary license, FreeType License must be chosen instead of GPLv2. Use of FreeType must be acknowledged in product documentation. GTK2 ~~~~ http://www.gtk.org The Gimp ToolKit is used by only by the PStats server on non-Windows platforms. This is a separate utility that can easily be deleted and is only used when profiling applications. License: `GNU LGPL `__ OpenAL Soft ~~~~~~~~~~~ http://openal-soft.org The Open Audio Library is a free alternative to FMOD and supports nearly the same features, including 3D surround sound. We ship the OpenAL Soft implementation by default on Windows. It can be easily removed from the distribution. License: LGPL Cg Toolkit ~~~~~~~~~~ http://developer.nvidia.com/object/cg_toolkit.html Nvidia's Cg Toolkit is required for Panda's Cg support. License: `Proprietary `__ License note: Required to use the Panda3D Shader Generator, which utilizes Nvidia Cg. Eigen ~~~~~ http://eigen.tuxfamily.org/ Optimized linear algebra library. Optional, but improves performance of matrix operations significantly. License: `MPL2 `__ libsquish ~~~~~~~~~ http://code.google.com/p/libsquish/ Libsquish gives DXT support. This improves Panda's support for pre-compressed texture images such as dds files, and it allows Panda to streamline compression of textures images at load time. However, even without this library, Panda can still compress and use compressed textures, by relying on the interfaces built into your graphics driver. License: MIT license libtiff ~~~~~~~ http://www.remotesensing.org/libtiff Tiff image format support. License: `libtiff license `__ DirectX (Windows only) ~~~~~~~~~~~~~~~~~~~~~~ http://msdn.microsoft.com/en-us/directx/default.aspx Windows DirectX libraries. License: Proprietary X libraries (Linux/FreeBSD only) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ http://www.x.org/ X libraries: X11 (display system), Xrandr (support for changing resolution), Xxf86dga (provides relative mouse mode), Xcursor (provides custom cursor image support). License: `MIT License `__ MFC (Windows only) ~~~~~~~~~~~~~~~~~~ http://msdn.microsoft.com/en-us/library/d06h2x6e%28VS.80%29.aspx Windows MFC libraries. Used by the ActiveX plug-in. License: Proprietary NPAPI ~~~~~ https://code.google.com/p/npapi-sdk/ Netscape plugin API (a set of interfaces to write browser plug-ins). It is only necessary to compile the Panda3D browser plug-in. Optional -------- FFMPEG ~~~~~~ http://ffmpeg.org Library for video and audio. Required to load and play video textures. As of Panda3D 1.9.0, libp3ffmpeg.dll is an optional module that can be easily removed, and is no longer required for .ogg and .wav files. License: `LGPL `__ License note: Must link dynamically. FMOD Ex ~~~~~~~ http://www.fmod.org FMOD Ex is a proprietary audio library that supports various effects and surround sound. You must have one of FMOD or OpenAL to build support for Panda's sound interfaces. (However, you can use external sound libraries such as pygame, even without these two.) License: `Proprietary `__ License note: Non-commercial distribution costs nothing. Commercial distribution costs between US$100 and US$6000 depending on FMOD licensing option. Bullet Physics ~~~~~~~~~~~~~~ http://bulletphysics.org Physics Library. License: `zlib license `__ PhysX ~~~~~ https://developer.nvidia.com/physx NVIDIA physics library. License: Proprietary. Open Dynamics Engine (ODE) ~~~~~~~~~~~~~~~~~~~~~~~~~~ http://www.ode.org One of the most versatile, free physics engines. License: `LGPL or Modified BSD License `__ OpenGL ES ~~~~~~~~~ http://www.khronos.org/opengles/ OpenGL for embedded systems: GLES (http://www.khronos.org/registry/gles/), GLES2 (http://www.khronos.org/opengles/2\_X/) and EGL (http://www.khronos.org/registry/egl/) libraries. 3ds Max SDK ~~~~~~~~~~~ http://www.autodesk.com/products/autodesk-3ds-max/overview Used to create exporters for Autodesk 3ds Max. License: Proprietary. Maya SDK ~~~~~~~~ http://www.autodesk.com/products/autodesk-maya/overview Used to create exporters for Maya. License: Proprietary. speedtree ~~~~~~~~~ http://www.speedtree.com/ Library for rendering trees. License: Proprietary. libRocket ~~~~~~~~~ http://librocket.com/ C++ user interface middleware package based on the HTML and CSS standards. License: `MIT License `__ OpenCV ~~~~~~ http://opencv.willowgarage.com An alternate library that provides support for video textures and webcam , similar to FFMPEG. License: BSD license FCollada ~~~~~~~~ https://collada.org/mediawiki/index.php/FCollada FCollada is an open-source C++ library which offers support for COLLADA interoperability, used for dae2egg and for loading dae files directly into Panda. License: MIT license FFTW ~~~~ http://www.fftw.org Fast Fourier Fransforms library for lossy animation compression in bam files. Compressed animation files may be as small as 10% of the uncompressed animation, but this is only an on-disk and/or download savings. License: `GPL or Proprietary `__ License note: To distribute under a proprietary license, GPL must not be used, and FFTW proprietary license must be purchased. ARToolKit ~~~~~~~~~ http://www.hitl.washington.edu/artoolkit/ A library for augmented reality. It makes possible detecting 3D planes in live webcam video streams and applying 3D geometry to those, for integrating 3D graphics with a live video feed. License: `GPL or Proprietary `__ License note: To distribute under a proprietary license, GPL must not be used, and ARToolKit proprietary license must be purchased. VRPN ~~~~ http://www.cs.unc.edu/Research/vrpn Virtual-Reality Peripheral Network, for using a range of different types of trackers and controllers with Panda3D. License: `Public domain `__ awesomium ~~~~~~~~~ http://awesomium.com/ Windowless port of Chromium/WebKit. Can be used to render HTML pages. License: `Proprietary `__ Build Tools (for compilation only) ---------------------------------- Bison ~~~~~ http://www.gnu.org/software/bison/ General-purpose parser generator. Flex ~~~~ http://flex.sourceforge.net/ The Fast Lexical Analyzer. Patent Restriction Issues ------------------------- MP3 ~~~ MPEG-1 Audio Layer 3 (MP3), while commonly used, is recommended against. The format has patent and licensing issues in many countries. Unlicensed use of MP3 runs the risk of infringing in these countries. `Licensing `__ the use of MP3 costs at minimum royalties of US$2500 per title for games and $15000 per calendar year for other software. MPEG ~~~~ Other MPEG related formats are restricted by `patents `__ as well. Finding the prices of licenses for these formats is not even as easy as it is with MP3. More info `here `__. Recommended Alternatives ~~~~~~~~~~~~~~~~~~~~~~~~ Free alternatives exist and are highly encouraged. These formats include `Ogg Vorbis `__ (lossy) and `Ogg FLAC `__ (lossless) for audio, and `Ogg Theora `__ for video.